1. Field
The present disclosure relates generally to data processing, and more specifically, to techniques for refreshing dynamic volatile memories.
2. Background
Memory systems are used extensively today in data processing systems to store data needed by various processing entities. A memory system generally includes a memory controller that manages access to the memory. The memory is typically configured in a matrix structure formed by rows and columns of memory cells, with each memory cell being capable of storing a bit of data. A memory cell may be accessed by a processing entity, or other source, by providing the appropriate address to the memory controller. The address from the processing entity may be sent to the memory controller over a bus with the row address occupying the lower-order bits and the column address occupying the higher-order bits. The memory controller uses a multiplexing scheme to send the row address to the memory followed by the column address. This multiplexing scheme reduces the number of pins on the memory chip, and thereby lowers cost.
Modern digital systems typically use Random Access Memory (RAM) as the main memory. There are two basic types of RAM: Dynamic RAM (DRAM) and Static RAM (SRAM). The SRAM operates as a switch and requires multiple transistors for each memory cell. The DRAM, on the other hand, uses one transistor and a capacitor for each memory cell, making it the memory of choice because it is less expensive than the SRAM and occupies less real estate. However, the DRAM is not without its drawbacks. In particular, the capacitors are very small and tend to discharge rather quickly, requiring a refresh circuit to maintain the charge and thus the stored information. This refresh circuit, however, is a small price to pay in view of the cost and real estate savings of DRAMs.
In many data processing systems, the refresh function is controlled by the memory controller. At regularly given intervals (refresh rate), the memory controller refreshes the DRAM by reading every row in the memory, one row at a time. Due to the construction of the memory cells, the process of reading a row refreshes every cell in that row. The specific rate at which the memory is refreshed can have a significant impact on system performance. A refresh rate that is too slow may result in an unacceptable loss of data as the capacitors discharge. A refresh rate that is too fast, on the other hand, may result in unnecessary power consumption. The latter condition is of particular concern in battery operated devices, such as cellular and wireless telephones, laptops, personal digital assistants (PDA), and the like. Accordingly, there is a need in the art for a methodology to maintain an optimal refresh rate despite variations in system parameters. This methodology should be sensitive to temperature variations.